/*
** $Id: ldebug.h,v 2.14 2015/05/22 17:45:56 roberto Exp $
** Auxiliary functions from Debug Interface module
** See Copyright Notice in lua.h
*/

#ifndef ldebug_h
#define ldebug_h


#include "lstate.h"


#define pcRel(pc, p)    (cast(int, (pc) - (p)->code) - 1)

#define getfuncline(f,pc)   (((f)->lineinfo) ? (f)->lineinfo[pc] : -1)

#define resethookcount(L)   (L->hookcount = L->basehookcount)


LUAI_FUNC l_noret luaG_typeerror( lua_State* L, const TValue* o,
                                  const char* opname );
LUAI_FUNC l_noret luaG_concaterror( lua_State* L, const TValue* p1,
                                    const TValue* p2 );
LUAI_FUNC l_noret luaG_opinterror( lua_State* L, const TValue* p1,
                                   const TValue* p2,
                                   const char* msg );
LUAI_FUNC l_noret luaG_tointerror( lua_State* L, const TValue* p1,
                                   const TValue* p2 );
LUAI_FUNC l_noret luaG_ordererror( lua_State* L, const TValue* p1,
                                   const TValue* p2 );
LUAI_FUNC l_noret luaG_runerror( lua_State* L, const char* fmt, ... );
LUAI_FUNC const char* luaG_addinfo( lua_State* L, const char* msg,
                                    TString* src, int line );
LUAI_FUNC l_noret luaG_errormsg( lua_State* L );
LUAI_FUNC void luaG_traceexec( lua_State* L );


#endif
